package com.isoftstone.mapper;

/**
 * @Description:
 * @Author :W.
 * @Date:2025/9/14 16:14
 */

import com.isoftstone.pojo.Dormitory;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 宿舍信息Mapper
 */

@Mapper
public interface DormitoryMapper {
    // 查询所有宿舍
    List<Dormitory> findAll();
    // 分页查询宿舍
    List<Dormitory> findByPage(@Param("buildingNumber") String buildingNumber,
                               @Param("roomNumber") String roomNumber,
                               @Param("capacity") Integer capacity); // 每页条数

    // 根据ID查询宿舍
    Dormitory findById(Integer id);

    // 新增宿舍
    int addDormitory(Dormitory dormitory);

    // 更新宿舍信息
    int updateDormitory(Dormitory dormitory);

    // 删除宿舍
    int deleteDormitory(Integer id);

    // 新增方法：查询有空位的宿舍
    List<Dormitory> selectAvailable();

    // 新增方法：更新宿舍入住人数
    int updateOccupancy(@Param("dormitoryId") Integer dormitoryId, @Param("change") Integer change);
    int batchDeleteDorms(@Param("ids") List<Integer> ids);
    Dormitory findByBuildingAndRoom(@Param("buildingNumber") String buildingNumber, @Param("roomNumber") String roomNumber);
}
